#ifndef _JOUEUR_H_
#define _JOUEUR_H_

#include <iostream>
#include <vector>

#include "Batiment.h"
#include "Entite.h"
#include "Ressource.h"
class Monde;

class Joueur
{
	public:

		Joueur(Monde* m,int ID);
		void setConditionsDepart(Ressource r);
		int getID() const;
		bool peutConstruire( Element e); // TODO - to check
		void construire( Batiment *b);
		void getBatimentsPossibles() const;
		void getUniteConstructionFinie();
		void ajouterBatiment(Batiment *b);
		void ajouterEntite(Entite *e);
		void init( std::vector<CarracteristiquesEntite> ents, std::vector<CarracteristiquesElement> elts);
		std::vector<Entite*> getEntites();
		std::vector<Batiment*> getBatiments();
		CarracteristiquesElement* getBatiment_config(int i);
		CarracteristiquesEntite* getEntite_config(int i);

	private:
		int ID;
		std::vector<Entite*> entites;
		std::vector<Batiment*> batiments;
		std::vector<int> technologies; // sera utilisé plus tard - ou pas -
		Monde *m;
		Ressource ressources;

		// carracteristiques
		std::vector<CarracteristiquesElement> batiments_config;
		std::vector<CarracteristiquesEntite> entites_config;

};

#endif	
